Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Перетворення типів даних

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Програмування Частина III Структури даних та алгоритми

Частина тексту файла

Міністерство освіти і науки, молоді та спорту України Національний університет “Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи № 2 на тему: "Перетворення типів даних" з дисципліни: " Програмування. Частина III. Структури даних та алгоритми " Вибір індивідуального завдання: RN = 1995 MN = 2 % 8 = 2 DN = 10 mn = 02 dn = 10 Pr1 = №(C) = 67 рr2 = №(h) = 97 рr3 = №(a) = 104 Львів – 2013 Мета роботи: Дослідження методів та засобів явного і неявного перетворення типів даних. Постановка задачі: Обчислити вирази та визначити, які неявні та явні перетворення типів будуть відбуватись. Хід міркувань підтвердити програмними результатами. Далі використовувати такі позначення: RN - число, що відповідає року народження, MN - число, що відповідає місяцю народження % 8, DN - число, що відповідає дню народження, mn і dn– ті ж самі значення, що й MN і DN відповідно, записані у вигляді двох цифр, Pr1 – ASCII-код першої літери прізвища (латинська велика літера), pr2 – ASCII-код другої літери прізвища (латинська мала літера), pr3 – ASCII-код третьої літери прізвища (латинська мала літера). Система тестів: • Неявні перетворення типів даних x1 = x0 + x2 + x4+0Х123; а) float x0 = 0х1995 – 10 0х1995 ВПК = 95 19 00 00 199516 = -10710 (1 байт) б) unsigned short x2 = 02 ВПК = 02 00 00 00 в) bool x4 = 10 % 3 * 10 10 % 3 * 10 = 1 г) 0х123 12316 = 29110 х1 = -107 – 10 + 2 +1 +291 = 177 Результат: 177 x2 = x2 + x3 - 0123; а) unsigned short x2 = 02 ВПК = 02 00 б) short x3 = 67 – 110 ВПК = D5 FF (преведено за допомогою програми, розробленої в лаб. роб. №1) D5 FF16 = 54783 в) 01238 = 8310 3) x3 = x1 + x2 * 0.123 + ’1’; а) х1 ВПК = СС СС (преведено за допомогою програми, розробленої в лаб. роб. №1) СС СС16 = -1310810 б) unsigned short x2 = 02 ВПК = 02 00 00 00 2*0,123 = 0,246 в) ‘1’ – у таблиці ASCII це код 49 ВПК = 31 00 (преведено за допомогою програми, розробленої в лаб. роб. №1) 31 0016 = 1254410 • Явні перетворення типів даних 1) float v1 = static_cast< float > (x); х = 10*2*100 = 2000 2) char v2 = static_cast<char> (x); х = 10*2*100 = 2000 Оскільки char займає 1 байт, то х = 20, а в таблиці ASCII це “¶” 3) float v3 =*reinterpret_cast<float*> (&x)+1; х = 10*2*100 = 2000 Оскільки char займає 1 байт, то 00 + 1 = 1 4) char v4 =*(reinterpret_cast<char*> (&x)+2)+3; х = 10*2*100 = 2000 Оскільки char займає 1 байт, то 00 + 3 = 3. В таблиці ASCII це “♥” 5) int w1 = static_cast<int>(y)+0X0E2; у = 2.10е+2 = 210 0х0E2 = 226 w1 = 210 + 226 = 436 6) long w2 =*reinterpret_cast<long*>(&y)+1; у = 210 ВПК = 00 00 00 00 00 40 6А 40. Оскільки long – 4 байти і перші 4 байти = 0, то 0 + 1 = 1 7) short w3 =*(reinterpret_cast<short*>(&y)+2); ВПК = 00 00 00 00 00 40 6А 40. Short – 2 байти 40 6А = 16384 8) char w4 =*(reinterpret_cast<char*>(&y)+7)+3; ВПК = 00 00 00 00 00 40 6А 40. Сhar – 1 байт Алгоритм розв’язання задачі: #include <iostream> using namespace std; int main () { //Program 1 char x0 = 0x1995 - 10; float x1 ; unsigned short x2 = 02; short x3 = 67 - 110; bool x4 = 10 % 3 * 10; x1 = x0 + x2 + x4 + 0x123; x2 = x2 + x3 - 0123; x3 = x1 + x2 * 0.123 + '1'; cout << "Task 2\n______" << endl; cout << "x1=" << x1 << endl; cout << "x2=" << x2 << endl; cout << "x3=" << x3 << endl; //Program 2 const int x_0 = 10*2*100; // наприклад: 15*3*100= 4500 => x_0= 4500; const int x_1 = 010020; // наприклад: x_1= 015030; const int x_2 = 0x1002; // наприклад: x_2= 0x1502; const int x_3 = 002100; // наприклад: x_3= 003150; const int x_4 = 0x0210; // наприклад: x_4= 0x0315; const double y_0= 10*2/100; // наприклад: 15*3/100= 0.45 => y_0= 0.45; const double y_1= -10.2; // наприклад: y_1= -15.3; const double y_2= 2.10e+2; // наприклад: y_2= 3.15e+2; const double y_3= -10.2e1; // наприклад: y_3= -15.3 e1; const double y_4= - 2.10e-1; // наприклад: y_4= -3.15 e-1; int x = x_0;...
Антиботан аватар за замовчуванням

14.04.2015 19:04

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини